[9. Season 2: Logger/Sniffer ]===============================================================]
[By  Jtag/GEDZAC] Una colaboracin de Jtag/GEDZAC para la ezine CDT. 2003 ]==================]
[============================================================================================]

Antes que nada, agradecer la colaboracion mutua que empieza a haber entre GEDZAC y CDT.
Sigamos adelante todos nosotros.

Este es un proyecto que podria situarse dentro de un campo no muy explotado que es el
hacking de hardware. Es sabido que el hacking desde sus inicios ha sido casi siempre enfocado 
al software; afortunadamente tambien tenemos hackers de la parte puramente electrnica: 
hackers y piratas del hardware.

De esta forma me uno a este campo aportando otro de mis proyectos electronicos, una tarjeta 
interfaz para la recepcion satelite de proveedores que ofrezcan servicios de TV digital para 
el sistema NAGRA (utilizado en Turquia, Espaa, America, Portugal,y no se que otros paises 
mas...).

Esta tarjeta literalmente permite "espiar", loggear o "esnifar" la comunicacion entre el 
proveedor emisor-tarjeta-decodificador receptor.

A traves de la construccion de un modulo especial + una tarjeta del tipo "smartcard" 
(ISO 7816) + un decodificador + software especial , podremos obtener datos sensibles que 
llegan desde el proveedor de servicios digitales hasta nuestro hogar.

Dichos datos pueden ser: Ubicacion en memoria de la posicion del numero de tarjeta, ubicacion 
del numero de decodificador, llaves encriptadas mediante RSA, llaves que activan los canales 
codificados de pago, mapas de memoria, "ataques", etc, etc... incluso una pequea opcion para 
poder escribir sobre la tarjeta original.

Pero como todo buen pequeo tutorial, hay que comenzar explicando un poco todo este sistema 
digital, o al menos en los puntos que nos interesa conocer para la confeccion del sniffer.

				---------o---------

No existe mucha documentacion en torno a lo que es en si, o que defina el Sistema Nagra 
Digital. Solo sabemos que es un sistema en donde contratamos servicios con un proveedor de 
canales de pago el cual nos otorgara un aparato decodificador, una tarjeta para poder 
decodificar y autentificar y una guia de canales mensual bastante horrible, y desorganizada 
por cierto.

En el aparato decodificador existe una memoria entre cuyos datos se encuentra nuestro numero 
de decodificador. A este numero se le ha llamado "BOXKEY". Esta BOXKEY es una clave  que liga 
indefectiblemente al decodificador con su tarjeta de acceso condicional. Si la BOXKEY 
almacenada en la memoria del decodificador no coincide con la almacenada en la tarjeta, el 
decodificador no abrira el canal. 

La BOXKEY consta de un numero de 16 Bits en base Hexadecimal. Ademas esta BOXKEY es 
transferida desde el proveedor a la tarjeta de acceso condicional en el momento del alta en 
el servicio.

Este proveedor tambien nos dara un numero de acceso condicional personal, llamado IRD el cual 
ya viene implicito en el decodificador.

El proveedor tambien debe darnos una tarjeta del tipo "smartcard" (ISO 7816) sin la cual no 
podremos ver los canales, esta tarjeta obviamente tambien posee un numero no menos importante.
Al numero identificador de la tarjeta se le llama CAM.

Cada cierto tiempo el proveedor emite una seal que contiene las llaves operativas para el
visionado de los canales. Nuestro equipo receptor se encarga de decodificarlas y entenderlas.
Dichas llaves operativas vienen encriptadas bajo una gran porcion de algoritmo RSA y DES.

Obviamente la tarjeta original que nos da nuestro proveedor posee una circuiteria interna 
capaz de entender dichas keys y activar el visionado del canal.

Algo muy frecuente en el hacking del sistema NAGRA Digital es la emulacion de dichas tarjetas,
de tal manera que muchas personas se han dedicado al estudio de como poder obtener las keys 
operativas y poder decodificar los canales que son exclusivamente de pago.

La obtencion de datos sensibles de este sistema se ha logrado mediante circuitos especificos
de sencilla construccion, pero de largo estudio, obteniendo asi los tipicos JTAG's especficos
para la extraccion de la BOXKEY de la memoria interna del decodificador, o como plantea este
proyecto: una tarjeta capaz de captar las keys operativas y otros datos mas (BOXKEY incluido)
cuando interactua la tarjeta original , equipo receptor, y emision por parte del satelite.

Otro aspecto interesante del hacking del sistema NAGRA Digital es la emulacion o clonacion
de la tarjeta original. Esta se logra implementando otra tarjeta del tipo smartcard con 
capacidad para almacenamiento en memoria (generalmente no mas de 512 Kb) y un microcontrolador 
cuyo codigo interno emule al de la tarjeta original. Los dos deben de ser grabados con 
circuitos programadores especificos y para esto se requiere de software especial y ficheros
con dichos datos sensibles (BOXKEY, EMM's, IRD, CAM etc.).

Ademas que todo esto tambien viene dado por el tipo de decodificador que utilicemos y tambien
por el tratamiento de seal interno (analogico o digital).

Por eso podriamos observar JTAG's diferentes para decodificadores diferentes, o tarjetas 
smartcard emuladas de manera ligeramente diferente para cada equipo decodificador.

Todo esto hace del sistema NAGRA Digital un complejo problema para el hacking de hardware,
pero sobretodo muy instructivo que reune una serie de conocimientos importantisimos 
relacionados con la electronica y las telecomunicaciones.

Teniendo idea basica de lo que representa el sistema NAGRA Digital pasemos a continuacion a 
la exposicion del proyecto: la tarjeta interfaz SEASON 2.


Un log tipico realizado con SEASON podria ser este....

	:0200000024C01A
	:100012004FB72CB120952695331F2695331F269571
	:10002200331F2695331F2695331F2695331F26959A
	:10003200331F2695331F3193F23021F4E03611F449
	:10004200F0E0E4E64FBF189503E60DBF00E00EBFF7
	:100052000FEF07BB0FE004BB8D9AF0E0E4E6D0E0BF
	:10006200C4E604E90AB901E009B968E87894EC1732
	:1000720011F4FD17E1F30991879B0EC008BB959817
	:100082008699FECF959A869BFECFD23021F4C03658
	:1000920011F4D0E0C4E6EBCF0627029505BB959894
	:1000A2008699FECF029505BB959A869BFECFEDCF32
	:1000B200FEFF286329203139393820735769737359
	:1000C200206368454573452070524F447543744917
	:1000D2006F4E730056322E3130204D6F64732062A2
	:0A00E20079205374756E7447757928
	:00000001FF

 todo claro, verdad?  pura base hexadecimal a examinar.


UNa tarjeta SEASON 2 tipica podria ser la de la <imagen1.jpg> que viene adjunta con esta 
e-zine. (Imagenes y ficheros del txt Season 2 Logger Sniffer).

Esta consta de una tarjeta smartcard (si no sabes lo que es "smartcard" te recomiendo que lo 
busques en internet) con 8 conectores que iran directamente conectados al zocalo de entrada
del decodificador (tal cual como se indica en la <imagen2.jpg>).

Esta smartcard lleva un pequeo modulo que es el denominado "modulo season", un zocalo para 
la tarjeta original (tambien smartcard) y ademas un conector DB9 para la comunicacion con el 
PC.

Comencemos asi a estudiar por partes cada uno de estos elementos.

NOTA: A CONTINUACION SE REQUERIR UN MINIMO DE CONOCIMIENTOS SOBRE ELECTRONICA PARA LA 
COMPRENSION DE LA PLACA, ESQUEMA Y CONEXIONES. Si no tienes n.p.i. sobre electronica basica...
alt+F4.

        HARDWARE:
       ===========

 -. 1 CI max232
 -. 1 conector DB9 (hembra) acodado (para soldar en placa)
 -. 1 diodo shottky BAT42
 -. 1 diodo de proposito general 1N4148 / 1N914  equivalentes.
 -. 1 estabilizador 78L05
 -. 4 condensadores electroliticos radiales de 1 Microfaradio / 16 voltios.
 -. 2 condensadores ceramicos de 100 nanofaradios
 -. 1 jumper (opcional)
 -. 1 zocalo smartcard (del tipo ISO 7816)
 -. 1 pila o bateria de 9 V. (en formato cuadrado)
 -. 1 zocalo o clip para la bateria.
 -. 1 tarjeta de circuito impreso smartcard de 8 contactos(AVR3, funcard, etc, incluso 
      haztela tu mismo a medida si asi lo quieres y puedes)


         SOFTWARE:	                 (cualquiera de los siguientes programas sirve)
       ===========

 -. Viagra v2.0
 -. W.o.p.l.a. v1.1
 -. Winlogr v0.1
 -. Catn v1.18
 -. Sosia v2.20


Bueno, y por supuesto vas a necesitar estar dado de alta con un proveedor de sistema NAGRA, 
tener tu propio decodificador y tu tarjeta original.

vamos a lo nuestro......

En el fichero <pcb1.bmp> tenemos el pcb con la distribucion de pistas a insolar. En el 
fichero <sch1.bmp> tenemos el esquema con pcb (la parte de arriba de la placa, la de los 
componentes).

Notar que en ambos no esta el conector DB9, por lo tanto tomar esa precaucion, cuando hagais
vuestra placa debeis de poner las pistas que llevan hasta el conector DB9. Por eso veras
que he indicado el punto que corresponde a cada pin del DB9.

De todas formas en el fichero <sch2.gif> esta puesto solo visiblemente como deberia de ir
ese DB9, y en el fichero <pcb2.gif> el pcb correspondiente al del DB9 bien puesto.

Notar que los pins 4,6,8 del conector DB9 estan unidos en el fichero <sch2.gif>. sto es 
solo para los Macintosh, o sea, que si tienes un PC no los unas.

Notaras tambien la presencia de un jumper en el fichero <sch1.bmp>, este solo debe de estar
puenteando los dos pins en caso de que quieras escribir en la tarjeta, asi que OJO: no 
puentes con jumper si solo vas a leer.

En el fichero <sch1.bmp> hay un pequeo error: falta una linea que une el condensador de 
1 MicroFaradio con la linea de alimentacion al pin 16 del MAX232. En el mismo esquema se ha 
colocado el pin1 del conector DB9 como reset, cuando en realidad este es el carry detect.

El pin2 del DB9 no se utiliza.

OJOOOO con el max232, no puede ser ni max3232 ni tampoco su hermanito el max232A (por el
problema de los condensadores. SLO , PURA Y ETERNAMENTE MAX232.

Adjunto tambien el datasheet correspondiente a este circuito integrado: fichero <data1.pdf>

Este circuito integrado es solo un adaptador de seal entre los niveles utilizados en el
estandar RS232 y los niveles estandar en lgica TTL. (deberas de buscar un pequeo tutorial
sobre los dos si no tienes n.p.i. sobre dichos niveles).

Para los que no les gusta buscar el esquema y significado de los pins del puerto COM del PC
a donde vamos a conectar nuestro cacharrito, aqui os adjunto una pagina web en donde aparece: 
fichero <com.zip>

El diodo shoktty es un diodo de germanio lo suficientemente capaz de conmutar a altas 
frecuencias, se usa en el proceso de grabacion de tarjeta solamente.

La bateria externa alimenta el modulo season, los 9 voltios de esta son estabilizados y
limitados a 5 voltios gracias al CI 78L05 (usar el de bajo consumo "L").

Estos 5 voltios alimentan el circuito integrado max232. 
A la entrada y salida del estabilizador tenemos dos condensadores ceramicos cuya unica 
funcion aqui es filtrar un poco el rizado que se produce en la seal continua, o sea que si 
la visualizas en un osciloscopio y observas que tienes un rizado bastante alto colocale un
condensador de mayor valor ( condensador > 100 nanofaradios ).


Asi mismo, ten cuidado y asegurate que las salidas hacia el puerto COM de tu PC obtengas no 
mas de +12 V. -12 V. porque sino.... puedes tener problemas con tu placa.

Asegurate tambien que los condensadores electroliticos esten en la polarizacion que indican
los esquemas, se usan asi para obtener voltios positivos y negativos. Ademas que el CI max232
lo requiere asi.

Solo queda por tu parte escanear un trozo de comunicacion (unos 10 minutos) con un programa 
de los puestos en la lista.

Sugiero que busques una guia sobre desencriptacion de algoritmo DES y RSA porque es muy largo
de explicar y necesita tiempo, ademas que el objetivo de este proyecto es solo la construccion
de la tarjeta season. (yo solo me he limitado hasta la fecha a la construccion de la placa y
un escaneo de logs., pero no he estudiado todavia la manera de desencriptar las keys porque 
lleva mucho tiempo en lecturas). De todas formas que sirva este documento como referencia 
sobre lo indispensable:

la construccion del hardware adecuado para sniffear la comunicacion entre el decodificador y
la tarjeta cuando recibimos seal por parte del proveedor. 


Muchas gracias.

Saludos a la gente de CDT.

